perm filename HALF.DOC[GEO,BGB] blob
sn#001304 filedate 1972-07-08 generic text, type T, neo UTF8
00100 CART PROJECT JULY 1972
00200
00300 PDP-10 HALFWORD OPERATIONS
00400 Alternate Mnemonics
00500
00600
00700 Baumgart
00800
00900
01000 First, a tongue twister to be read aloud as rapidly as possible:
01100
01200 LIP, LAP, DIP, DAP,
01300 LIPZ, LAPZ, DIPZ, DAPZ,
01400
01500 SLIP, SLAP, STIP, STAP,
01600 SLIPZ, SLAPZ, STIPZ, STAPZ,
01700
01800 ZIP, ZAP, WIP, WAP, NIP, NAP,
01900 NIM, LIM, SLIM, CAR 'n CDR.
02000
02100 Needless to say, my mnemonics are all mentioned in the above
02200 tongue twister and are explained as follows: The letter "L" stands
02300 for "Load into accumulator from memory" and the letter "D" stands for
02400 "Deposit from accumulator into memory". The letters "IP" stand for
02500 "Instruction Part" which is the left half of the memory word. The
02600 letters "AP" stand for "Address Part" and refers to the right half of
02700 the memory word, "IM" refers to immediate operation. The letter "Z"
02800 stands for "Zero", "W" stands for "W'ones", and "N" stands for
02900 "Number" and refers to a signed constant. Finally, the letter "S"
03000 stands for "swapped" and like "Z" appears in a natural, if not
03100 rigorously consistent fashion; the couplet "SD" for "Swapped Deposit"
03200 is turned into "ST" for the sake of pronouciation, but then "ST" can
03300 be read a "store". CAR and CDR are of course traditional, arising
03400 from the address and decrement registers of the IBM-7090.
03500
03600 Next, I would like to justify my halfword mnemonics, they are
03700 useful for three reasons: i.) the current mnemonics lack easy
03800 pronouciations which are unique; ii.) the current mnemonics follow
03900 the source-destination mentality rather than the accumulator-memory
04000 mentality. The former is admittedly useful for designing the
04100 machine and for memorizing all its operations, but is rather poor for
04200 a programmer who must wallow in the essential operations and would be
04300 better off forgetting the redundant and worthless ones. iii.)
04400 Finally, the current mnemonics are too many.
04500
04600 A file of the OPDEF's for these mnemonics is HALF[SYS,BGB].
00100 ALTERNATE HALFWORD MNEMONICS.
00200
00300
00400 LIP Load from Instruction Part................HLR
00500 LAP Load from Address Part....................HRR
00600 DIP Deposit into Instruction Part.............HRLM
00700 DAP Deposit into Address Part.................HRRM
00800
00900 LIPZ LIP with Zeroes...........................HLRZ
01000 LAPZ LAP with Zeroes...........................HRRZ
01100 DIPZ DIP and ZAP...............................HRLZM
01200 DAPZ DAP and ZIP...............................HRRZM
01300
01400 SLIP Swapped LIP...............................HLL
01500 SLAP Swapped LAP...............................HRL
01600 STIP Swapped DIP...............................HLLM
01700 STAP Swapped DAP...............................HLRM
01800
01900 SLIPZ Swapped LIPZ..............................HLLZ
02000 SLAPZ Swapped LAPZ..............................HRLZ
02100 STIPZ Swapped DIPZ..............................HLLZM
02200 STAPZ Swapped DAPZ..............................HLRZM
02300
02400 ZIP Zero Instruction Part.....................HRRZS
02500 ZAP Zero Address Part.........................HLLZS
02600 WIP W'ones into Instruction Part..............HRROS
02700 WAP W'ones into Address Part..................HRRZS
02800
02900 NIP load Number from Instruction Part.........HLRE
03000 NAP load Number from Address Part.............HRRE
03100 NIM Number Immediate..........................HRREI
03200 LIM Load Immediate............................HRRI
03300 SLIM Swapped Load Immediate....................HRLI
03400
03500 CAR ≡ LIPZ
03600 CDR ≡ LAPZ
00100 HALFWORD LOAD TO ACCUMULATOR OPERATIONS
00200
00300 DEC mnemonic importance alternate mnemonic
00400
00500 HLL useful SLIP
00600 HLLZ useful SLIPZ
00700 HLLO arcane -
00800 HLLE arcane -
00900
01000 HLR useful LIP
01100 HLRZ essential LIPZ ≡ CAR
01200 HLRO arcane -
01300 HLRE essential NIP
01400
01500 HRL useful SLAP
01600 HRLZ useful SLAP
01700 HRLO arcane -
01800 HRLE arcane -
01900
02000 HRR useful LAP
02100 HRRZ essential LAPZ ≡ CDR
02200 HRRO arcane -
02300 HRRE useful NAP
02400
02500
02600 HALFWORD DEPOSIT INTO MEMORY OPERATIONS
02700
02800 DEC mnemonic importance alternate mnemonic
02900
03000 HLLM useful STIP
03100 HLLZM useful STIPZ
03200 HLLOM arcane -
03300 HLLEM arcane -
03400
03500 HLRM useful STAP
03600 HLRZM useful STAPZ
03700 HLROM arcane -
03800 HLREM obscure -
03900
04000 HRLM essential DIP
04100 HRLZM useful DIPZ
04200 HRLOM arcane -
04300 HRLEM arcane -
04400
04500 HRRM essential DAP
04600 HRRZM useful DAPZ
04700 HRROM arcane -
04800 HRREM obscure -
00100 THE HALFWORD SELF MODE OPERATIONS.
00200
00300 DEC mnemonic importance alternate mnemonic
00400
00500 HLLS redundant with HLL -
00600 HRRS redundant with HRR -
00700 HRLS obscure -
00800 HLRS obscure -
00900
01000 HLLZS useful ZAP
01100 HRRZS useful ZIP
01200 HRLZS arcane -
01300 HLRZS arcane -
01400
01500 HLLOS obscure WAP
01600 HRROS obscure WIP
01700 HRLOS arcane -
01800 HLROS arcane -
01900
02000 HLLES arcane -
02100 HRRES arcane -
02200 HRLES arcane -
02300 HLRES arcane -
02400
02500
02600 THE HALFWORD IMMEDIATE OPERATIONS.
02700
02800 DEC results importance alternate mnemonic
02900
03000 HLLI 0,,AC redundant with ZIP -
03100 HRRI AC,,E essential LIM
03200 HRLI E,,AC essential SLIM
03300 HLRI AC,,0 redundant with ZAP -
03400
03500 HLLZI 0,,0 redundant with SETZ -
03600 HRRZI 0,,E redundant with MOVEI -
03700 HRLZI E,,0 obscure -
03800 HLRZI 0,,0 redundant with SETZ -
03900
04000 HLLOI 0,,-1 redundant with MOVEI -1 -
04100 HRROI -1,,E redundant with WIP. -
04200 HRLOI E,,-1 redundant with WAP. -
04300 HLROI -1,,0 obscure. -
04400
04500 HLLEI 0,,0 redundant with SETZ. -
04600 HRREI sign,,E essential NIM
04700 HRLEI E,,sign arcane -
04800 HLREI 0,,0 redundant with SETZ. -